1. Technical Field
The present invention relates in general to a system and method for securing code and ensuring proper execution using state-based encryption. More particularly, the present invention relates to a system and method for capturing and using individual memory state snapshots for encryption purposes.
2. Description of the Related Art
The Internet and personal computers have changed the way digital content is produced and distributed. Downloading digital content has gained acceptance because it provides immediate access to desired content and a user does not need to leave his home. As markets evolve, more digital content will become available on the Internet. However, a challenge found with distributing digital content is that digital content may be illegally copied and altered if not protected correctly.
Digital Rights Management (DRM) is a set of technologies in which content owners may use to protect their digital content. DRM encrypts digital content and limits access to those users who have acquired a proper license to use the digital content. A challenge found with existing DRM solutions is that once digital content is decrypted, it is stored unencrypted in a non-volatile storage area, which is accessible, by malicious users.
A malicious user may attempt to improperly execute the unencrypted digital content. For example, a malicious user may attempt to load classes included in a Java program out of sequence in order to change the Java program's functionality. Furthermore, a malicious user may alter portions of the digital content in order to change the digital content's functionality. Using the example described above, the malicious user may alter a particular class included in the Java program in order to change the Java program's functionality.
What is needed, therefore, is a system and method for securing code such that the code is protected against improperly execution or alteration.